package com.yf.dxapp.module.app.controller.admin.course.vo;

import com.yf.dxapp.module.app.dal.dataobject.courseitem.CourseItemDO;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.util.List;

@Schema(description = "管理后台 - 课程信息新增/修改 Request VO")
@Data
public class CourseSaveReqVO {

    @Schema(description = "课程id", requiredMode = Schema.RequiredMode.REQUIRED, example = "13307")
    private Long id;

    @Schema(description = "课程名称", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "课程名称不能为空")
    private String title;

    @Schema(description = "课程节数", example = "4445")
    private Long courseShotCount;

    @Schema(description = "课程分类", example = "1")
    private Long courseType;

    @Schema(description = "课程描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "你说的对")
    @NotEmpty(message = "课程描述不能为空")
    private String description;

    @Schema(description = "查看级别", requiredMode = Schema.RequiredMode.REQUIRED, example = "26954")
    @NotNull(message = "查看级别不能为空")
    private Long levelId;

    @Schema(description = "排序")
    private Integer sort;

    @Schema(description = "老师id", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "老师id不能为空")
    private Long publisherId;

    @Schema(description = "课程封面")
    private String cover;

    @Schema(description = "是否上架")
    private Integer shelf;

    @Schema(description = "是否推荐")
    private Integer recommend;

    @Schema(description = "老师名", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四")
    @NotEmpty(message = "老师名不能为空")
    private String publisherName;

    @Schema(description = "课程明细列表")
    private List<CourseItemDO> courseItems;

}